Method for updating an encoder by filter interpolation

ABSTRACT

A method for updating the processing capacity of an encoder or decoder to use a modulated transform having a size greater than a predetermined initial size is provided, particularly, where the encoders or decoders are for storing an initial prototype filter defined by an ordered set of initial size coefficients. A step is provided for constructing a prototype filter of a size greater than the initial size to implement the modulated transform of the greater size by inserting at least one coefficient between two consecutive coefficients of the initial prototype filter.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is the U.S. national phase of the International Patent Application No. PCT/FR2009/051302 filed Jul. 3, 2009, which claims the benefit of French Application No. 08 55228 filed Jul. 29, 2008, the entire content of which is incorporated herein by reference.

FIELD OF THE INVENTION

The invention relates to signal processing, notably for an audio signal (such as a voice signal) and/or a video signal in the form of a succession of samples. It particularly concerns signal processing by transform and relates to the field of modulated transforms.

Modulated transforms have applications in the analysis and transmission of digital signals (therefore a succession of samples over time within a sampling period). They also have applications in signal synthesis. For example, signal encoding can make use of an analysis filter bank, quantification, and a synthesis filter bank.

BACKGROUND

For modulated transforms, usually prototype filters are defined which are modulated to different frequency values. Thus, there is provided a set of channels representing the signal at different “frequency” positions.

The modulations can be done by an operation of the type: h_(k)(n)=h(n)·W(k,n), where:

-   -   n is a time index corresponding to a multiple of the sampling         period,

k is an index representing a frequency channel, and

L is the length of the filter (and of the modulation).

In addition, in the above expression:

-   -   h(n) (where 0≦n<L) defines the prototype filter which may have a         complex value,     -   W(k,n) (where 0≦n<L) defines the modulating function for the         channel k which also may have complex values,     -   h_(k)(n) (where 0≦n<L) defines the modulated filter for the         channel k.

To perform a signal analysis, for encoding for example, the signal x(n) to be analyzed is projected on the modulated filter by a scalar product operation:

$y_{k} = {{\langle{x,h_{k}}\rangle} = {\sum\limits_{n = 0}^{L - 1}\; {{x(n)} \cdot {{h_{k}(n)}.}}}}$

The analyzed signals can be the result of several projections, for example in the form: y_(k)=<x,h_(k)>+λ<x,h′_(j)>, where λ, h_(j)′ and j are respectively a gain, a modulation, and a frequency index, with these latter values possibly different from h_(k) and k.

These analysis operations can be successive over time, resulting in a series of signals y_(k) evolving over time.

Thus one can write:

${y_{k,m} = {{\langle{x_{m},h_{k}}\rangle} = {\sum\limits_{n = 0}^{L - 1}\; {{x\left( {n + {mT}} \right)} \cdot {h_{k}(n)}}}}},$

with m indicating an index of blocks of successive samples (a “frame”) and T defining the duration of a frame (as the number of samples).

Modulated transforms also have applications in signal synthesis. For this type of application, content will be generated in a certain number of frequency channels and these channels will be put together to reconstruct a digital signal.

A signal {circumflex over (x)}(n) is thus synthesized by projection of the transformed signals y_(k) onto the M synthesis vectors. First an expression {tilde over (x)}(n) is defined such that:

${\overset{\sim}{x}(n)} = {{\langle{y,h_{k}}\rangle} = {{\sum\limits_{k = 0}^{M - 1}\; {{y_{k} \cdot {h_{k}(n)}}\mspace{14mu} {for}\mspace{14mu} 0}} \leq n < {L.}}}$

The signals y_(k) can evolve over time, so that the synthesis will allow generating a signal of an arbitrary length:

${\overset{\sim}{x}\left( {n + {mT}} \right)} = {{\langle{y_{m},h_{k}}\rangle} = {{\sum\limits_{k = 0}^{M - 1}\; {{y_{k,m} \cdot {h_{k}(n)}}\mspace{14mu} {for}\mspace{14mu} 0}} \leq n < {L.}}}$

The vectors defined by the expressions {tilde over (x)}, for 0≦n<L, are shifted by M samples then added together, to yield a synthesized signal {circumflex over (x)}. This is called an overlap add.

Modulated transforms advantageously have applications in signal encoding.

In frequency encoding systems, an analysis transform is performed by means of modulated analysis filters h_(k) where:

$y_{k,m} = {{\langle{x_{m},h_{k}}\rangle} = {\sum\limits_{n = 0}^{L - 1}\; {{x\left( {n + {mT}} \right)} \cdot {{h_{k}(n)}.}}}}$

The signals y_(k,m) carrying useful information (the usefulness can be judged for example using a perceptive distortion criterion) are then approximated and sent in encoded form.

At the decoder, the approximated components y_(k,m) received are synthesized by reverse transformation to restore an approximation of the original samples.

The synthesis is done by way of a set of modulated synthesis filters f_(k):

${{\overset{\sim}{x}\left( {n + {mT}} \right)} = {{\langle{y_{m},f_{k}}\rangle} = {\sum\limits_{k = 0}^{M - 1}\; {y_{k,m} \cdot {f_{k}(n)}}}}}\mspace{14mu}$

Then the overlap add operation is performed to obtain a reconstructed and decoded signal {circumflex over (x)}.

An interesting class of modulated transforms is defined by perfect reconstruction transforms.

These transforms obtain from the decoding a decoded signal that substantially corresponds, or perfectly corresponds in the case of perfect reconstruction, to the initial signal when the transformed components y_(k) are not modified, aside from a delay R, meaning {circumflex over (x)}(n)=x(n−R).

The reconstruction can also be an “almost perfect” reconstruction when the difference between the reconstructed signals x and {circumflex over (x)} can be considered to be negligible. For example, in audio encoding, a difference having an error magnitude 50 dB lower than the magnitude of the processed signal x can be considered to be negligible.

The most commonly used transforms are ELT (Extended Lapped Transforms), which provide a perfect reconstruction and which use a filter of length L=2·K·M. The MDCT transforms (Modified Discrete Cosine Transforms) which are MLT (Modulated Lapped Transforms) are a special case where K=1.

Quadrature Mirror Filters (QMF), or Pseudo Quadrature Mirror Filters (PQMF) are an almost perfect reconstruction solution using different modulation terms.

These different transforms can be with real or complex coefficients. They may or may not use symmetric prototype filters.

In order to satisfy the condition of perfect or almost perfect reconstruction, for any form of processed signal, the modulated analysis and synthesis filters must be linked to each other. Thus, relations link the modulation terms and the prototype filters used in the analysis and synthesis. For example, in cosine-modulated systems (MDCT, ELT, PQMF, or other systems), the modulation terms in the analysis and synthesis are linked, for example in the form: W(k,n)=W(k,n+φ)), W and W′ indicating the modulations used in the analysis and synthesis respectively and rp indicating a phase shift term.

A commonly used special case is defined by φ=0. The modulations are then identical in analysis and synthesis.

The prototype filters for analysis and synthesis can also be linked to each other to ensure (almost) perfect reconstruction, with a constraint of the following frequently used type: h(L−1−n)=f(n), where h and f are the prototype filters used in the analysis and synthesis.

The modulations W are constrained to ensure perfect reconstruction. For example, one can generally choose for ELT transforms:

${{W\left( {k,n} \right)} = {\cos \left\lbrack {\frac{\pi}{M}\left( {n + \left( \frac{1 + M}{2} \right)} \right)\left( {k + \frac{1}{2}} \right)} \right\rbrack}},$

where 0≦n<L and 0≦k<M, with L=2·K·M.

Similarly, the prototype filters are constrained to ensure perfect reconstruction, with, for example, a constraint of the type:

${{\sum\limits_{i = 0}^{{2K} - {2s} - 1}\; {{f\left( {n + {iM}} \right)}{h\left( {n + {iM} + {2{sM}}} \right)}}} = {\delta (s)}},{{{for}\mspace{14mu} s} = 0},1,\ldots \mspace{14mu},{K - 1.}$

In particular, the prototype filters can be selected from among the following:

-   -   those defined analytically in the form of an equation and, in         this class, a filter commonly used for the MDCT transform (with         K=1) is expressed by:

${{h(n)} = {{f(n)} = {\sin \left\lbrack {\frac{\pi}{2M}\left( {n + 0.5} \right)} \right\rbrack}}},$

with 0≦n<L where L=2·M,

-   -   the filters resulting from a digital optimization according to a         criterion which does not allow deducing an analytical function,         such as, for example, a filter which can be obtained by         minimizing an amount under the perfect reconstruction constraint         (this amount can be a stop-band attenuation from a cutoff         frequency, or a coding gain, or more generally any other amount         judged to be relevant to the encoding quality).

As was mentioned above, the prototype filters may or may not be symmetric. The symmetry relation is written as follows:

h(L−1−n)=h(n).

The modeling of the modulated transforms implementation described above is provided for illustrative purposes. In actual implementations of these transforms, all the described calculations are not carried out in this form. For reasons of computational efficiency, time, and use of computational resources, “fast” implementations are used. These implementations do not specifically apply the calculations presented above, but these calculations are valid.

The modulated transforms as presented below are defined by fast algorithms for efficient implementation with computational resources. These algorithms are based on fast Fourier transforms or are derived from them, such as fast cosine or sine transforms (for example type IV DCT transforms).

A transform order for the fast algorithm which is less than or equal to the number M of frequency components is sufficient for the implementation of these transforms. These transformations are efficient because their complexity is proportional to log₂(M) of the number M of components.

A operation reducing L samples to a number less than or equal to M components is applied prior to the fast transform.

A complete algorithm from the transformation to the analysis can combine:

-   -   multiplying samples of size L by the prototype filter,     -   combining the result of this multiplication, meaning a linear         combination based on additions and coefficient multiplications,         to allow deducing from the L weighted values a number less than         or equal to M components,     -   a fast transform of an order less than or equal to M

These operations are done in reverse order to perform the synthesis transformation.

FIG. 1 illustrates the analysis and synthesis as described above. The signal x is presented to an encoder COD comprising a prototype filter φ. A set of samples of size L of the signal are then multiplied by the prototype filter in the module MULT1. Then, in the module CL1, a linear combination of the samples multiplied by the prototype filter is performed in order to change from L samples to M components. Then, a fast transform TR1 is performed, before the samples are sent to a decoder DECOD.

Upon receipt of the samples, the decoder applies a fast transform TR2. Then, conversely to what was done in the encoder, a linear combination CL2 is performed to return to the initial number L of samples. These samples are then multiplied by the prototype filter of the decoder DECOD in order to reconstruct a signal {tilde over (x)}, from which the signal {circumflex over (x)} is obtained by an overlap add operation.

The coefficients of the prototype filter, of the encoder or decoder, must be stored in memory in order to perform the analysis or synthesis transform. Obviously, in a particular system using modulated transforms of different sizes, the prototype filter for each of the sizes used must be represented in memory.

In the favorable case where the filters are symmetric, only L/2 coefficients need to be stored, the L/2 other ones being determined from these stored coefficients without any arithmetic operation. Thus, for a MDCT (K=1), if a transform of size M and 2·M is needed, then (M+2M)=3M coefficients must be stored if the prototypes are symmetric and (2M+4M)=6M otherwise. A typical example for audio encoding is M=320 or M=1024. Thus, for the asymmetrical case this requires storing 1920 and 6144 coefficients respectively.

Depending on the accuracy desired for the coefficient representation, 16 bits or even 24 bits are necessary for each coefficient. This implies significant memory requirements for low cost processors.

If we have a prototype filter for a transform of size UM, then it is possible to obtain coefficients for the transform of size M by decimation. Conventionally, this consists of taking a filter coefficient from U in this specific example.

However, if we only have a filter for the transform of size M, it is not as simple to extend this filter to a use with MU coefficients. A direct method of polynomial interpolation does not maintain the reconstruction accuracy at the same level as for the base transform of size M. This type of method is therefore not optimal.

When a core encoding system is implemented in an encoder, it can be useful to extend it, for example when updating a standardized version of the encoding system. For example, standardized ITU G.718 and ITU G.729.1 encoders rely on MDCT modulated transforms of respective sizes M=320 and M=160. In an extension of these standards to operate these encoders at a higher sampling frequency, referred to as a super-wideband extension, MDCTs of greater sizes are necessary. An MDCT of size M′=640 must be applied in this extension.

In an extension according to the related art, the amount of storage for expressing coefficients of a new prototype filter would have to be extended. In addition, intervention at the encoder would be necessary in order to store the coefficients.

Embodiments of the invention offer a way of saving memory, in ROM for storing the coefficients and/or in RAM for the transform calculation.

SUMMARY

To that purpose, there is provided a method for updating the processing capacity of an encoder or decoder in order to use a modulated transform having a size greater than a predetermined size, such an encoder or decoder being able to store an initial prototype filter defined by an ordered set of coefficients of an initial size. A step for constructing a prototype filter of a size greater than said initial size is provided to implement the modulated transform of a size greater than the predetermined size, by inserting at least one coefficient between two consecutive coefficients of the initial prototype filter.

Thus, coefficients already present in the encoder are used instead of storing additional coefficients for the transform.

In this manner is it possible to define a transform of size UM by only storing a single prototype filter designed for a transform of size M.

Of course, the additional coefficients can be used in analysis or synthesis or at both ends of a sequence of processing operations.

Embodiments of the invention have an advantageous application in embedded systems, in which the price of memory represents a significant part of the system cost. For example, in mobile telephony the consumption, miniaturization, and price of the implemented encoders/decoders must be optimized. The reduction of memory requirements provided by embodiments of the invention enables such optimization.

“Updating” is understood to mean the passage of an operating encoder/decoder from an initial state to a different next state. However, the embodiments of the invention also relate to the initialization of an encoder/decoder which has not yet been used to perform encoding/decoding.

Advantageously, the inserted coefficients are calculated from coefficients of the initial filter.

For example, the coefficient inserted between the two consecutive coefficients is calculated by weighting at least the two consecutive coefficients.

In addition, a method can be provided in which the initial prototype filter satisfies a predetermined reconstruction relation, for example a perfect reconstruction relation. In this case, the weighting is done by means of at least one weighting function calculated from the reconstruction relation.

It must be certain that the added coefficients still permit the encoder to function properly. Thus the additional coefficients are determined based on the weighting of coefficients of the initial prototype and must enable a transform with perfect or almost perfect reconstruction.

In some embodiments, the weighting function is calculated for each position of the coefficient inserted between the two consecutive coefficients.

In one embodiment of the method, the size of the constructed filter h′ is U times greater than the size M of the initial filter h, where U and M are natural numbers strictly greater than one. In this case, a shift value S is defined such that 0≦S<U, S being a natural number and the constructed and initial filters satisfying the relation: h′(U×n+S)=h(n), for any natural number n such that 0≦n<M.

In addition, two weighting functions P_(δ) and Q_(δ), may be defined for any natural number δ satisfying 0<δ<U. Thus the inserted coefficients are defined by the relation: h′(U×n+S+δ)=P_(δ)(n)×h(n)+Q_(δ)(n)×h(n+1), for an integer n where n<M.

The two weighting functions can also be equal. In addition, the initial prototype filter can be extended symmetrically, antisymmetrically, or by adding zero coefficients. These measures can be useful for defining missing coefficients in the initial filter in order to construct the prototype filter.

It is understood that the prototype filter construction proposed by embodiments of the invention allows further reducing the number of coefficients when the initial prototype filter contains zeros. The interpolated window will then have zeros in its impulse response and ranges comprising equal coefficients. The memory requirements will therefore be further reduced.

Depending on the weighting interpolation scheme used, the process described above allows obtaining prototype filters which have interesting frequency responses in the bandwidth.

Embodiments of the invention also relate to a computer program comprising instructions for implementing the method described above when said program is executed by a processor. It additionally relates to a computer-readable medium on which such a computer program is recorded.

Embodiments of the invention also relate to an encoder and a decoder adapted to implement the method described above.

An encoder/decoder according to embodiments of the invention comprises at least two memory areas, a first memory area for storing a first set of coefficients defining an initial prototype filter of a given size, and a second memory area for storing a computer program comprising instructions for delivering a second set of coefficients determined from coefficients in the first set. The set formed by inserting coefficients from the second set between two consecutive coefficients of the first set, defines a prototype filter of a size greater than that of the initial prototype filter.

In addition, this encoder/decoder can comprise a means for implementing the updating method described above for constructing the prototype filter of a size greater than that of the initial prototype filter.

In addition, a method of encoding/decoding by modulated transform can be provided, implemented by an encoder/decoder and comprising the following steps:

-   -   obtaining the size of a modulated transform to be used for the         encoding/decoding,     -   if the size of the transform is greater than the size of an         initial prototype filter of the encoder/decoder, updating the         processing capacity of the encoder/decoder according to the         updating method described above,     -   encoding/decoding the signal by means of the modulated         transform, making use of the prototype filter constructed during         the update.

Advantageously, the encoding/decoding method is implemented by an encoder/decoder as described above.

An encoding/decoding by modulated transform is an encoding/decoding which makes use of such a transform.

The step “obtaining the size of a modulated transform” can, for example, correspond to receiving a signal containing information that indicates said size. Such a signal can, for example, indicate an encoding mode. In this case a low resolution mode is provided for, with data frames of reduced size and therefore requiring a transform of reduced size, and a high resolution mode is provided for, with data frames of larger size requiring a transform of larger size. However, this information may also be read from a computer file. This determination may also correspond to an input of the encoder/decoder.

Of course, updating the encoder/decoder can also be understood to mean initializing the encoder/decoder.

The choice of size of the modulated transform can also be made based on the number of samples, for example dependent upon the size of the frames or sub-frames to be processed by the encoder/decoder. The larger the number of samples per frame or sub-frame, the larger the size of the transform must be.

Thus transforms of variable sizes can be used at various times as needed, with the prototype filters being updated at various times, based on an initial prototype.

BRIEF DESCRIPTION OF THE DRAWINGS

Other features and advantages of the invention will be apparent from examining the following detailed description and the attached drawings, which include,

FIG. 1 is a block diagram illustrating a basic the analysis and synthesis;

FIG. 2 is a data structure diagram illustrating the insertion of coefficients between two consecutive coefficients of the initial filter, in order to construct the prototype filter,

FIG. 3 is a graph illustrating an initial filter and a filter constructed from the initial filter,

FIGS. 4 and 5 are graphs illustrating filters constructed according to different embodiments of the invention,

FIG. 6 is a graph illustrating a subset of a filter comprising constant coefficients,

FIG. 7 is a block diagram illustrating an encoder according to an embodiment of the invention, and

FIG. 8 is a block diagram illustrating the steps of an encoding/decoding process according to an embodiment of the invention.

DETAILED DESCRIPTION

Below is a description of one embodiment of the invention which allows constructing a prototype window from a prototype window corresponding to a transform of a smaller size. This occurs within the general context of ELT modulated transforms, with or without symmetric windows. In the context of ELTs, the prototype filter has a length L=2KM which can include a certain number M of zeros at its end, with M defining the number of transformed coefficients.

The analysis transformation is written as follows:

$y_{k,m} = {{\langle{x_{m},h_{k}}\rangle} = {\sum\limits_{n = 0}^{L - 1}\; {{x\left( {n + {mM}} \right)} \cdot {h(n)} \cdot {W\left( {k,n} \right)}}}}$

for 0≦k<M, where

n is a time index corresponding to a multiple of the sampling period,

k is an index representing the frequency channel concerned,

h(n), 0≦n<L, defines the analysis prototype filter,

W(k,n) 0≦n<L, defines the modulating function for the frequency k.

The synthesis transformation is written as:

${\overset{\_}{x}\left( {n + {mM}} \right)} = {\sum\limits_{k = 0}^{M - 1}\; {y_{k,m} \cdot {f(n)} \cdot {W\left( {k,n} \right)}}}$

for 0≦n<L, where

f(n) 0≦n<L, defines the synthesis prototype filter,

{tilde over (x)}(n) is a signal of length L containing spurious terms which will be deleted by an overlap add operation to obtain a signal {circumflex over (x)}(n) of a duration equivalent to x(n).

For ELTs the modulation W(k,n) is defined by:

${W\left( {k,n} \right)} = {\cos \left\lbrack {\frac{\pi}{M}\left( {n + \frac{{\pm M} + 1}{2}} \right)\left( {k + \frac{1}{2}} \right)} \right\rbrack}$

0≦k<M and 0≦n<L.

These transformations ensure a perfect reconstruction, meaning that {circumflex over (x)}(n) is identical to x(n) (allowing for the delay).

To ensure a perfect reconstruction, the filters f and h must satisfy the following constraint:

${\sum\limits_{i = 0}^{{2K} - {2s} - 1}{{f\left( {n + {iM}} \right)}{h\left( {n + {iM} + {2{sM}}} \right)}}} = {\delta (s)}$

s=0, 1, . . . , K−1

With the function δ defined as

$\left\{ {\begin{matrix} {{\delta \left( {s = 0} \right)} = 1} \\ {{\delta \left( {s \neq 0} \right)} = 0} \end{matrix}\quad} \right.$

One embodiment concerns MDCTs, meaning the subset of ELTs having filters of length L=2M, meaning where K=1. The perfect reconstruction condition is then written as:

f(n)h(n)+f(n+M)h(n+M)=1, for 0≦n<M.

One solution consists of taking:

f(n)=h(2M−1−n) for 0≦n<2M.

This allows using the same prototype filter coefficients for analysis and synthesis. Only a time reversal, corresponding to the term 2M−1−n, will need to be considered in the synthesis algorithm.

In this case, the perfect reconstruction relation is written as:

d(n)=h(n)h(2M−1−n)+h(n+M)h(M−1−n)=1 for 0≦n<M.

On the basis of this transformation of size M, a transformation of a larger size is constructed for M′=U·M. Therefore a filter h′ is defined for which a certain number of coefficients come from the filter h.

Thus, as represented in FIG. 2, the filter h′ is constructed in the following manner:

h′(U·n+S)=h(n) 0≦n<L. With S a shift value, 0≦S<U.

In order to ensure perfect reconstruction, the prototype filter of length L′=2·M′=2·U·M must satisfy a reconstruction relation similar to the one presented above:

$\begin{matrix} {{d^{\prime}(n)} = {{{h^{\prime}(n)}{h^{\prime}\left( {{2M^{\prime}} - 1 - n} \right)}} + {{h^{\prime}\left( {n + M^{\prime}} \right)}{h^{\prime}\left( {M^{\prime} - 1 - n} \right)}}}} \\ {= {{{h^{\prime}(n)}{h^{\prime}\left( {{2{UM}} - 1 - n} \right)}} + {{h^{\prime}\left( {n + {UM}} \right)}{h^{\prime}\left( {{UM} - 1 - n} \right)}}}} \\ {{= 1},} \end{matrix}$

keeping in mind that samples with indexes that are a multiple of U at position S are taken from h(n).

Next the embodiments for determining the missing values of h′ are described.

General Embodiment

FIG. 3 illustrates the principle of determining the constructed filter. This begins with a filter φ₁ of size M. Next the coefficients of this filter φ₁ are redistributed over a larger interval of size 2M. Lastly, the intermediate coefficients are calculated in order to complete the final filter φ₂. The intermediate samples, as shown in FIG. 2, are constructed using the equation which defines a general embodiment:

h′(U·n+S+δ)=P _(δ)(n)h(n)+Q _(δ)(n)h(n+1).

P_(δ)(n) and Q_(δ)(n) where n<M, and δ is an integer such that 0<δ<U, are weighting functions.

If S=0, initial delta=0 and initial n n0=0

If S!=0, initial delta=U−S and initial n n0=−1

Thus P_(δ)(−1) and Q_(δ)(−1) will be defined to allow the calculation of h′(0)=h′(U·(−1)+S+δ) which is necessary when S is not zero. The first value of delta will be δ=U−S.

It should be noted that the expression for h′ may make use of undefined points. For example, h′(U·(2M−1)+S+δ) makes use of h(2M) which is not defined.

To define the missing coefficients, the filter h can be extended in the set of formulas by one of the following:

h(2M+n)≡−h(2M−1−n), by antisymmetry,

h(2M+n)≡+h(2M−1−n), for n≧0, by symmetry,

h(2M+n)≡0, adds zero coefficients.

Similarly, h can be extended for negative indexes. For example, in order to define h′(0) one must define h(−1). Thus this coefficient can be determined by extending h towards the negative indexes by one of the following:

h(−1−n)≡−h(n), by antisymmetry,

h(−1−n)≡+h(n), for n≧0, by symmetry,

h(−1−n)≡0, by adding zero coefficients.

In other cases, extensions towards negative samples and those greater than L are done in the modulo sense by multiple duplication of the support 0 . . . L−1.

To ensure the perfect reconstruction of h′(n), d′(n) is rewritten in one particular point:

d′(Un+S)=h′(Un+S)h′(2UM−1−Un−S)+h′(UM+Un+S)h′(UM−1−Un−S)=1,

with

d′(Un+S)=h′(Un+S)h′(U(2M−1−n)+U−1−S)+h′(U(M+n)+S)h′(U(M−n−1)+U−1−S)

hence:

h(n)[P_(U − 1 − 2S)(M − 1 − n)h(2M − 1 − n) + Q_(U − 1 − 2S)(M − 1 − n)h(2M − n)] + h(M + n)[P_(U − 1 − 2S)(M − 1 − n)h(M − 1 − n) + Q_(U − 1 − 2S)(M − 1 − n)h(M − n)] = 1 ${{{P_{U - 1 - {2S}}\left( {M - 1 - n} \right)}\underset{\underset{1}{}}{\left\lbrack {{h(n){h\left( {{2M} - 1 - n} \right)}} + {{h\left( {M + n} \right)}{h\left( {M - 1 - n} \right)}}} \right\rbrack}} + {{Q_{U - 1 - {2S}}\left( {M - 1 - n} \right)}\left\lbrack {{h(n){h\left( {{2M} - n} \right)}} + {{h\left( {M - n} \right)}{h\left( {M + n} \right)}}} \right\rbrack}} = 1$ P_(U − 1 − 2S)(M − 1 − n) = 1 − Q_(U − 1 − 2S)(M − 1 − n)[h(n)h(2M − n) + h(M − n)h(M + n)]

which is equivalent to:

P _(U-1-2S)(n)=1−Q _(U-1-2S)(n)[h(M−1−n)h(M+1n)+h(n+1)h(2M−1−n)]

In conclusion, given a choice of Q, a weighting P can be established which obtains the perfect reconstruction.

Embodiment with Single Weighting

One particular embodiment consists of the restriction P=Q. In this case, a direct expression can be obtained for the weighting function:

$\mspace{79mu} {{{P_{U - 1 - {2S}}(n)}\begin{bmatrix} {1 + {{h\left( {n + 1} \right)}{h\left( {{2M} - 1 - n} \right)}} +} \\ {{h\left( {M - 1 - n} \right)}{h\left( {M + 1 + n} \right)}} \end{bmatrix}} = 1}$ ${P_{U - 1 - {2S}}(n)} = \frac{1}{1 + {{h\left( {n + 1} \right)}{h\left( {{2M} - 1 - n} \right)}} + {{h\left( {M - 1 - n} \right)}{h\left( {M + 1 + n} \right)}}}$

d′ can be written at another point

$\begin{matrix} \begin{matrix} {\mspace{79mu} {{d^{\prime}\left( {{Un} + S + 1} \right)} = {{{h^{\prime}\left( {{Un} + S + 1} \right)}{h^{\prime}\left( {{2{UM}} - 1 - {Un} - S - 1} \right)}} +}}} \\ {{{h^{\prime}\left( {{UM} + {Un} + S + 1} \right)}{h^{\prime}\left( {{UM} - 1 - {Un} - S - 1} \right)}}} \\ {= 1} \end{matrix} & \; \\ \begin{matrix} {\mspace{79mu} {{d^{\prime}\left( {{Un} + S + 1} \right)} = {{{h^{\prime}\left( {{Un} + S + 1} \right)}{h^{\prime}\left( {{U\left( {{2M} - 1 - n} \right)} + U - S - 2} \right)}} +}}} \\ {{h^{\prime}\left( {{U\left( {M + n} \right)} + S + 1} \right)}} \\ {{h^{\prime}\left( {{U\left( {M - 1 - n} \right)} + U - S - 2} \right)}} \\ {= 1} \end{matrix} & \; \\ {{{{{{P_{1}(n)}\left\lbrack {{h(n)} + {h\left( {n + 1} \right)}} \right\rbrack}{h^{\prime}\left( {{U\left( {{2M} - n - 1} \right)} + U - S - 2} \right)}} + {{{P_{- 1}(n)}\left\lbrack {{h\left( {M + n} \right)} + {h\left( {M + n + 1} \right)}} \right\rbrack}{h^{\prime}\left( {{U\left( {M - 1 - n} \right)} + U - S - 2} \right)}}} = 1}{{P_{1}(n)}{{{P_{U - {2S} - 2}\left( {M - 1 - n} \right)}\left\lbrack {{h(n)} + {h\left( {n + 1} \right)}} \right\rbrack}\left\lbrack {{h\left( {{2M} - 1 - n} \right)} + {h\left( {{2M} - n} \right)}} \right\rbrack}} + {{P_{1}(n)}{{P_{U - {2S} - 2}\left( {M - 1 - n} \right)}\left\lbrack {{h\left( {M + n} \right)} + {h\left( {M + n + 1} \right)}} \right\rbrack}{\quad{\left\lbrack {{h\left( {M - 1 - n} \right)} + {h\left( {M - n} \right)}} \right\rbrack = {{1{P_{1}(n)}{P_{U - {2\; S} - 2}\left( {M - 1 - n} \right)}} = {{\frac{1}{\begin{matrix} {{\left\lbrack {{h(n)} + {h\left( {n + 1} \right)}} \right\rbrack \left\lbrack {{h\left( {{2M} - 1 - n} \right)} + {h\left( {{2\; M} - n} \right)}} \right\rbrack} +} \\ {\left\lbrack {{h\left( {M + n} \right)} + {h\left( {M + n + 1} \right)}} \right\rbrack \left\lbrack {{h\left( {M - 1 - n} \right)}{h\left( {M - n} \right)}} \right\rbrack} \end{matrix}}{P_{1}(n)}{P_{U - {2\; S} - 2}\left( {M - 1 - n} \right)}} = \frac{1}{\begin{matrix} {1 + {{h(n)}{h\left( {{2\; M} - n} \right)}} + {{h\left( {n + 1} \right)}\left\lbrack {{h\left( {{2\; M} - 1 - n} \right)} + {h\left( {{2M} - n} \right)}} \right\rbrack} +} \\ {{{h\left( {M + n} \right)}{h\left( {M - n} \right)}} + {{h\left( {M + n + 1} \right)}\left\lbrack {{h\left( {M - 1 - n} \right)} + {h\left( {M - n} \right)}} \right\rbrack}} \end{matrix}}}}}}}} & \; \end{matrix}$

A relation is then obtained which allows constructing a weighting series P₁(n) enabling perfect reconstruction, based on a given P_(U-2S-2)(M−1−n).

The definition of the weighting functions can be generalized based on this expression. They are paired and based on the following (δ≠0):

${{P_{\delta}(n)}{P_{U - {2S} - 1 - \delta}\left( {M - 1 - n} \right)}} = \frac{1}{\begin{matrix} {1 + {{h(n)}{h\left( {{2M} - n} \right)}} + {{h\left( {n + 1} \right)}\left\lbrack {{h\left( {{2M} - 1 - n} \right)} + {h\left( {{2M} - n} \right)}} \right\rbrack} +} \\ {{{h\left( {M + n} \right)}{h\left( {M - n} \right)}} + {{h\left( {M + n + 1} \right)}\left\lbrack {{h\left( {M - 1 - n} \right)} + {h\left( {M - n} \right)}} \right\rbrack}} \end{matrix}}$

This expression allows generating weights which will construct the interpolated filter under a defined criterion.

For example, the frequency response for h′ will be given preference while minimizing its stop-band energy from a given frequency and while maximizing its continuity or coding gain across a particular signal.

Case of Second-Order Interpolation

Specific embodiment U=2, S=0

The filter is interpolated by:

h^(′)(2 ⋅ n + 0) = h(n) h^(′)(2 ⋅ n + 1) = P₁(n)h(n) + P₁(n)h(n + 1) ${P_{1}(n)} = \frac{1}{1 + {{h\left( {n + 1} \right)}{h\left( {{2M} - 1 - n} \right)}} + {{h\left( {M - 1 - n} \right)}{h\left( {M + 1 + n} \right)}}}$ ${h^{\prime}\left( {{2 \cdot n} + 1} \right)} = {\frac{{h(n)} + {h\left( {n + 1} \right)}}{\begin{matrix} {1 + {h\left( {n + 1} \right){h\left( {{2M} - 1 - n} \right)}} +} \\ {{h\left( {M - 1 - n} \right)}{h\left( {M + 1 + n} \right)}} \end{matrix}}.}$

FIG. 4 illustrates a prototype filter S1, which is a sinusoidal type filter, of size 640 for an MDCT of 320, and a prototype filter S2 of size 1280 for an MDCT of 640 obtained from S1 according to the present specific embodiment (S1 has deliberately been centered around 640 in order to compare S1 and S2).

Case of Second-Order Interpolation with Zero at the End

In a particular embodiment in which h(n) includes zeros at its end (meaning in consecutive indexes starting at n=0, or at n=L−1), with no loss of generality one obtains h(n)=0 for 2M−mZ≦n<2M. Due to the proposed interpolation, the h′ will then be zero in the corresponding support. A particular property of the proposed interpolation is as follows:

$\begin{matrix} \begin{matrix} {{d^{\prime}\left( {2n} \right)} = {{{h^{\prime}\left( {2n} \right)}\underset{\underset{0}{}}{h^{\prime}\left( {{4M} - 1 - {2n}} \right)}} + {{h^{\prime}\left( {{2M} + {2n}} \right)}{h^{\prime}\left( {{2M} - 1 - {2n}} \right)}}}} \\ {= 1} \end{matrix} & \; \\ {{h^{\prime}\left( {{2M} - 1 - {2n}} \right)} = \frac{1}{h\left( {M + n} \right)}} & \; \\ {but} & \; \\ \begin{matrix} {{d(n)} = {{{h(n)}\underset{}{h\left( {{2M} - 1 - n} \right)}} + {{h\left( {M + n} \right)}{h\left( {M - 1 - n} \right)}}}} \\ {{= 1},} \end{matrix} & \; \\ {therefore} & \; \\ {{h\left( {M - 1 - n} \right)} = {\frac{1}{h\left( {M + n} \right)}.}} & \; \\ {{And}\mspace{14mu} {so}\text{:}} & \; \\ \begin{matrix} {{h^{\prime}\left( {{2M} - 1 - {2n}} \right)} = \frac{1}{h\left( {M + n} \right)}} \\ {= {h\left( {M - 1 - n} \right)}} \\ {= {{h^{\prime}\left( {{2M} - 2 - {2n}} \right)}.}} \end{matrix} & \; \end{matrix}$

This particular choice of interpolation obtains ranges of coefficients that are constant when zeros are imposed on the filter h. These ranges have a length 2 in the example. More generally, it is demonstrated that for an interpolation of order U, the ranges have a length U, in a zone centered around the index n=UM.

FIG. 5 illustrates a prototype filter A1, “ald” type, of size 640 for an MDCT of size 320, and a prototype filter A2 of size 1280 for an MDCT of 640 constructed from A1 according to the present case. As in FIG. 4, A1 has been centered. The filter A1 comprises 80 zeros at its end Z. Thus A2 comprises constant sample ranges of size 2 due to the fact that A1 comprises zeros at its end.

FIG. 6 is an enlarged view of the area of A2 comprising constant samples C.

Implementation

The prototype filters constructed according to the method described above enable a fast implementation.

In the prior art, the first step during analysis consisted of weighting the samples by the window of the transform in question before the fast transform, as presented above.

Here, due to the interpolation, the coefficients of the prototype filter can be arranged to supplement those from the lower transform order.

For example, for an interpolation of order U with a shift of S, one can write:

$\begin{matrix} {y_{k,m}^{\prime} = {{\langle{x_{m},h_{k}^{\prime}}\rangle} = {\sum\limits_{n = 0}^{{UL} - 1}\; {{x\left( {n + {mT}} \right)} \cdot {h^{\prime}(n)} \cdot {W^{\prime}\left( {k,n} \right)}}}}} & \; \\ {{h^{\prime}\left( {{U \cdot n} + S} \right)} = {h(n)}} & \; \\ {{h^{\prime}\left( {{U \cdot n} + S + \delta} \right)} = {{{P_{\delta}(n)}{h(n)}} + {{Q_{\delta}(n)}{h\left( {n + 1} \right)}}}} & \; \\ \begin{matrix} {y_{k,m}^{\prime} = {\langle{x_{m},h_{k}^{\prime}}\rangle}} \\ {= {{\sum\limits_{n = 0}^{L - 1}\; {x{\left( {{Un} + S + {mT}} \right) \cdot {h^{\prime}\left( {{Un} + S} \right)} \cdot {W^{\prime}\left( {k,{{Un} + S}} \right)}}}} +}} \\ {{\sum\limits_{\underset{\delta \neq S}{\delta = 0}}^{U - 1}{\sum\limits_{n = 0}^{L - 1}{{x\left( {{Un} + S + \delta + {mT}} \right)} \cdot {h^{\prime}\left( {{Un} + S + \delta} \right)} \cdot}}}} \\ {{W^{\prime}\left( {k,{{Un} + S + \delta}} \right)}} \end{matrix} & \; \\ \begin{matrix} {y_{k,m}^{\prime} = {\langle{x_{m},h_{k}^{\prime}}\rangle}} \\ {= {{\sum\limits_{n = 0}^{L - 1}\; {x{\left( {{Un} + S + {mT}} \right) \cdot {h(n)} \cdot {W^{\prime}\left( {k,{{Un} + S}} \right)}}}} +}} \\ {{\sum\limits_{\underset{\delta \neq S}{\delta = 0}}^{U - 1}{\sum\limits_{n = 0}^{L - 1}{{x\left( {{Un} + S + \delta + {mT}} \right)} \cdot \left\lbrack {{{P_{\delta}(n)}{h(n)}} + {{Q_{\delta}(n)}{h\left( {n + 1} \right)}}} \right\rbrack \cdot}}}} \\ {{{W^{\prime}\left( {k,{{Un} + S + \delta}} \right)}.}} \end{matrix} & \; \end{matrix}$

Thus the memory of the encoder/decoder for the prototype filter can advantageously be organized into two segments: a first segment containing the coefficients of the initial prototype filter on which the first weighting x(Un+S+mT)·h(n) is based, and a second segment containing the interpolated coefficients. This avoids duplication of the memory required while retaining the fast algorithm. This property is retained for the synthesis of sub-bands during the reverse transformation.

In the case of a interpolation based on an initial filter having zeros at the end, the weighting operation by the filter of greater size can result in a simplification of the operations. In fact, in the central area around n=UM the coefficients of the prototype filter obtained have constant samples. Thus a factoring in the form:

${h\left( {M + n} \right)}{\sum\limits_{\delta = 0}^{U - 1}\left\lbrack {{W\left( {k,{{UM} + {Un} + S + \delta}} \right)}{x\left( {{UM} + {Un} + S + \delta} \right)}} \right\rbrack}$

can be demonstrated.

This avoids having to store interpolated samples identical to the initial prototype filter, and results in savings in the weighting operations because of the factoring. In the sample range concerned, meaning the area centered around UM, (U−1) multiplications per weighted sample are saved.

In the following, referring to FIG. 7, there is described an encoder adapted to implement the method described above. A decoder could have the same structure. The encoder COD comprises a processing unit PROC adapted to perform a signal analysis or synthesis, as has already been described. To perform these operations, the encoder COD makes use of a prototype filter. The encoder comprises a first memory MEM1 for storing an initial prototype filter φ_(i). For example, this initial filter allows modulated transforms of a maximum size M.

To perform modulated transforms of a larger size, the encoder comprises a memory MOD_EXT for storing a computer program comprising instructions for constructing a prototype filter φ_(e) of a size greater than φ_(i). To do this, additional coefficients are calculated as described above. These additional coefficients are then stored in a memory MEM2.

FIG. 8 illustrates an encoding/decoding method which adapts the prototype filter used to the size desired for the modulated transform.

Step S80 begins by obtaining the size of the transform to be used for the analysis or synthesis of the signal to be encoded or decoded. During the test T82, it is determined whether the size of the modulated transform is greater than the size of a prototype filter φ_(i), stored in memory for performing the modulated transform.

If the size of the modulated transform is greater than the size of the prototype filter, one advances to step S84 for constructing a prototype filter φ_(e) of a larger size, as described above. Then, in step S86, the encoding or decoding of the signal is performed.

If the size of the transform is equal to the size of the filter, the construction step S82 can be skipped and one can proceed directly to step S86.

Advantageously, if the transform is of a smaller size than that of the filter, a step of reducing the filter size is done, for example by decimation before performing step S86.

Of course, the invention is not limited to the embodiments described above, and extends to other variants. For example, a calculation of additional coefficients by weighting two consecutive coefficients was described, but other embodiments can be envisaged where a larger number of coefficients are weighted. 

1. A method for updating a processing capacity of an encoder or decoder in order to use a modulated transform having a size greater than a predetermined size, said encoder or decoder being adapted to store an initial prototype filter defined by an ordered set of coefficients of an initial size, said method comprising: constructing, using a computer processor, a prototype filter of a size greater than said initial size to implement the transform of a size greater than the predetermined size by inserting at least one coefficient between two consecutive coefficients of the initial prototype filter.
 2. The method according to claim 1, wherein the inserted coefficients are calculated from coefficients of the initial filter.
 3. The method according to claim 1, wherein the coefficient inserted between said two consecutive coefficients is calculated by weighting at least said two consecutive coefficients.
 4. The method according to claim 3, wherein the initial prototype filter satisfies a predetermined reconstruction relation, in which the weighting is done by way of at least one weighting function calculated from said reconstruction relation.
 5. The method according to claim 4, wherein the weighting function is calculated for each position of the coefficient inserted between the two consecutive coefficients.
 6. The method according to claim 1, wherein: the size of the constructed filter h′ is U times greater than the size M of the initial filter h, where U and M are natural numbers strictly greater than one, a shift value S is defined such that 0≦S<U, with S being a natural number, and the constructed and initial filters satisfy the relation: h′(U×n+S)=h(n), for any natural number n such that 0≦n<M.
 7. The method according to claim 3, wherein the size of the constructed filter h′ is U times greater than the size M of the base filter h, where U and M are natural numbers strictly greater than one, a shift value S is defined such that 0≦S<U, two weighting functions P_(δ) and Q_(δ) are defined for any natural number δ satisfying 0<δ<U, the inserted coefficients are defined by the relation: h′(U×n+S+δ)=P _(δ)(n)×h(n)+Q _(δ)(n)×h(n+1), for any natural number n satisfying n<M.
 8. A non-transitory computer program product comprising instructions for implementing the method according to claim 1 when said program is executed by a processor.
 9. An encoder of digital signals, comprising: at least two memory areas that include a first memory area for storing a first set of coefficients defining an initial prototype filter of a given size, and second memory area for storing a computer program comprising instructions for delivering a second set of coefficients determined from coefficients in the first set, with the set formed by inserting coefficients from the second set between two consecutive coefficients of the first set, defining a prototype filter of a size greater than that of the initial prototype filter.
 10. An encoder of digital signals, comprising: at least two memory areas that include a first memory area for storing a first set of coefficients defining an initial prototype filter of a given size, and second memory area for storing a computer program comprising instructions for delivering a second set of coefficients determined from coefficients in the first set, with the set formed by inserting coefficients from the second set between two consecutive coefficients of the first set, defining a prototype filter of a size greater than that of the initial prototype filter; and a device for implementing the method according to claim 3 for constructing the prototype filter of a size greater than that of the initial prototype filter.
 11. A method of encoding by modulated transform, implemented by an encoder and comprising the steps of: obtaining the size of a modulated transform to be used for the encoding, if the size of the transform is greater than the size of an initial prototype filter stored in the encoder, updating the processing capacity of the encoder according to the method according to claim 1, encoding the signal via said modulated transform, making use of the prototype filter constructed during the update.
 12. A decoder of digital signals, comprising: at least two memory areas that include a first memory area for storing a first set of coefficients defining an initial prototype filter of a given size, and a second memory area for storing a computer program comprising instructions for delivering a second set of coefficients determined from coefficients in the first set, with the set formed by inserting coefficients from the second set between two consecutive coefficients of the first set, defining a prototype filter of a size greater than that of the initial prototype filter.
 13. The decoder of digital signals, comprising: at least two memory areas that include a first memory area for storing a first set of coefficients defining an initial prototype filter of a given size, and a second memory area for storing a computer program comprising instructions for delivering a second set of coefficients determined from coefficients in the first set, with the set formed by inserting coefficients from the second set between two consecutive coefficients of the first set, defining a prototype filter of a size greater than that of the initial prototype filter; and a device for implementing the method according to claim 3 for constructing the prototype filter of a size greater than that of the initial prototype filter.
 14. A method of decoding by modulated transform, implemented by a decoder and comprising the steps of: obtaining the size of a modulated transform to be carried out for the decoding, if the size of the transform is greater than the size of an initial prototype filter stored in the decoder, updating the processing capacity of the decoder according to a method according to claim 1, decoding the signal via said modulated transform, making use of the prototype filter constructed during the update. 